Becoming a BFS person
Conjecture
In many crafts (if not all), becoming a master entails the ability to focus first on the big picture and then fill in the details – in pretty much the same way a Breadth-First Search in a graph first discovers the nearmost data points and progressively, level by level, reaches the deepest details.
Corolary
Beginners (or amateurs) are the ones that generally obsess over the details well before the overall blue-print (or even) the goals are laid down.
Examples
- In painting (and visual arts), beginners usually obsess over details (the form of an eye, the proper skin color, “perfect” lines, etc.) while the parts of the composition are obviously in visual disharmony. At the opposite end of the spectrum, a master can usually convey an emotion, or the very essence of the subject in just a couple of strokes.
- In photography, beginners usually obsess over rules and technical correctness while skilled photographers are deliberate in their breaking of rules and sacrificing technical corectness over message or visual impact.
- In programming, beginners usually try to solve a problem right, down to the
last edge-case and get caught in the ramifications/implications of each decision,
while skilled programmers are usually able to loosely prototype and refine as
they go, in only the places that require it at a given moment.
- Corrolary: Beginners usually optimize for (imagined) raw performance, while senior developers usually optimize for maintainability, readability and performance where it really matters.
Disclaimer
- examples based on my own observations and my own experience in some of the mentioned fields
- the conjecture holds no pretense of general usefulness and no effort was spent in trying to prove it correct